home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 19.zip / BS1 part 19 / Guardian v1.2r.adf / instructions < prev    next >
Text File  |  1989-01-02  |  21KB  |  411 lines

  1. ************************************************************************
  2. *                            GUARDIAN v1.2                             *
  3. *                        Antivirus Bootstrap                           *
  4. *  Copyright 1988 by Leonardo Fei, via A. Fava 6, 20125 Milano, Italy  *
  5. *  Distributed by Transactor (UK) Ltd, Unit2, Langdale Grove,          *
  6. *                 Bingham, Nottinghamshire, England, NG13 8SR          *
  7. *                                                                      *
  8. *  IMPORTANT NOTE: This version is not Public Domain, nor Shareware.   * 
  9. *  All rights are reserved to the author.                              *
  10. *  Please respect this copyright notice ...Thanks!                     *
  11. *                                       *
  12. *                    Imported by Quartex in 1988!                      *
  13. *                                                                      *
  14. ************************************************************************
  15.  
  16. The first version of Guardian was written, on impetus, in a few days,
  17. after I discovered that a new virus had infected most of my disks.
  18.  
  19. This second version has been greatly enhanced, both in terms of security
  20. and of versatility.  If you are using Kickstart 1.3 (v34.5) you will
  21. find Guardian very useful in helping you do things you couldn't normally
  22. do without it.  More about this later.
  23.  
  24. Guardian does not steal even a single cycle of the machine's time, 
  25. because it's called only during boot.
  26.  
  27. While the other antivirus programs are tuned on a particular version or
  28. family of viruses, Guardian recognize any not-standard bootblock.  With
  29. 'standard bootblock' I mean a bootblock created by the Workbench INSTALL
  30. command.  This standard bootblock is contained into the Guardian code.
  31.  
  32. Guardian installs itself in place of the bootstrap module, and examine
  33. the contents of each bootblock by comparing it with the standard one,
  34. BEFORE it is actually executed.
  35.  
  36.  
  37. "WARNING !!! - THIS IS NOT A STANDARD BOOTBLOCK !!!"
  38. ----------------------------------------------------
  39.  
  40. If the bootblock code differs even by a single byte, an alert is
  41. displayed to warn the user of the possible threat contained in the
  42. bootcode, and an ASCII view of the suspect bootblock is given, to help
  43. you in recognizing it.  You may recognize a virus by text strings such
  44. as 'SCA!SCA!SCA!' or 'VIRUS BY BYTE BANDIT', but remember that there are
  45. also anonymous viruses around, without a single message into them. 
  46. So, always be very careful, even when you don't see these text strings.
  47.  
  48. The user can choose to regardless give control to the loaded bootblock, 
  49. or to execute the standard one contained into the Guardian code.
  50. The opportunity to execute the loaded bootcode is given because there
  51. are several not-standard bootblocks that actually don't contain viruses. 
  52. These are boot-intros, fast loaders, boot-menus and other custom
  53. bootblocks, which you can find on commercial and not-commercial disks.
  54. You'll need to execute them, if you want those disks to work properly.
  55.  
  56. If you decide to give the control to the loaded bootblock, the
  57. screen color will become red, to remind you that you've chosen the
  58. dangerous way.  A copy of ExecBase is made before actually executing the
  59. bootcode, and after the control is returned from the bootcode to
  60. Guardian, this copy is compared to the current ExecBase.  
  61.  
  62.  
  63. "WARNING !!! - ExecBase was altered by bootcode !!!"
  64. ----------------------------------------------------
  65.  
  66. If they differ even by a single byte, an alert is displayed, and you can
  67. decide to restore the old copy of ExecBase into its place, overwriting
  68. the changes made by the bootcode.  If you get this alert, you could
  69. have executed the 'BYTE BANDIT' virus.  Restoring the old
  70. ExecBase will overwrite the changes made to the Vertical Blanking
  71. Interrupt vector by the virus, and also its entry in the Resident
  72. Modules table.  This way, the virus won't freeze the machine (because it
  73. has been removed from VBlanking interrupt) and won't survive next reset
  74. (because its ResModules entry has been removed).  But there is still a
  75. problem.  During its execution time, this virus alters the trackdisk
  76. device library's offset table, so that the virus itself will be called
  77. each time the computer accesses a new disk (each time there's a 
  78. read/write command starting from block 0).  So you'll still get your
  79. disk infected by simply inserting them into any drive.  To solve this
  80. problem you can simply reset the machine.  This will force the offset
  81. table to be rebuilt, and since the virus has been removed from the
  82. ResModules table, it will be flushed completely from memory.  
  83.  
  84. The old 'SCA' virus will also cause this alert to appear, because it
  85. changes the contents of the CoolCapture vector, which is contained in
  86. the ExecBase.  Simply restoring the old ExecBase will completely remove
  87. this virus, and no further action is required.
  88.  
  89. If you choose not to restore the old ExecBase, Guardian could be removed
  90. from the ResModules table ('BYTE BANDIT' virus will surely do it, while
  91. 'SCA' one will pacifically cohabit) and you would be responsible of what
  92. could happen later.
  93.  
  94.  
  95. "WARNING !!! - THIS IS NOT A STANDARD BOOTBLOCK !!!"
  96. ----------------------------------------------------
  97.  
  98. If you choose not to give the control to the loaded bootblock, the
  99. screen color will become white as usual, and you are given the
  100. opportunity of installing the disk with the standard bootblock.  
  101.  
  102.  
  103. "Shall I replace IT with a STANDARD BOOTBLOCK ?"
  104. ------------------------------------------------
  105.  
  106. If the bootblock contains a virus, you should use this opportunity to
  107. replace it with the standard one.
  108.  
  109. ************************************************************************
  110.  WARNING!  Do not install the original disk, unless you have a backup
  111.  copy or unless you are absolutely sure of what you are doing.  Some
  112.  commercial programs come with a not-standard bootblock (fast-load,
  113.  intros, etc.) and you may be no more able to use those disks/programs
  114.  once that the original bootblock is overwritten with the standard one. 
  115. ************************************************************************
  116.  
  117.  
  118. "Disk is write-protected.  Shall I retry ?"
  119. -------------------------------------------
  120.  
  121. An additional alert is displayed if the disk is write protected.
  122.  
  123.  
  124. "DANGER !!! - I can't succeed in rewriting the bootblock !"
  125. -----------------------------------------------------------
  126.  
  127. A new feature has been added to Guardian v1.2 at this point.  After the
  128. standard bootblock has been written to the disk, the newly created
  129. bootblock is loaded into the memory once more, and is compared with the
  130. standard one.  They should match, of course.  But if they don't, this
  131. means that something serious has happened to the trackdisk device.  Most
  132. probably you've launched Guardian with the 'BYTE BANDIT' virus already
  133. active in memory, or you didn't reset the computer after giving control
  134. to it and/or after restoring the ExecBase.  This is a 'deadend' alert,
  135. and you'll have no chance but to force a cold reset of the computer by
  136. pressing any of the mouse buttons.  
  137.  
  138. ** PLEASE DON'T RESET WITH CTRL-AMIGA-AMIGA AT THIS POINT ! ** 
  139. **    This will leave the virus happily messing around !    **
  140.  
  141. A cold reset is achieved by purposely trashing the low part of the
  142. ExecBase, without letting the corresponding checksum again.  During the
  143. following reset, the computer is forced to rebuild all the internal
  144. structures, thus flushing any virus (but also Guardian itself) from
  145. memory.  You should put a ** SAFE ** disk into the internal drive BEFORE
  146. pressing any of the mouse button, because loading of the bootblock will
  147. happen just a few instants after.  Remember that the bootblock of the
  148. disk that you have into the internal drive when you get this alert
  149. wasn't replaced.  If you leave this disk in the drive, the virus will
  150. load itself into memory once again, because Guardian has been flushed
  151. during the cold-reset.
  152. The best thing to do, in this situation, is to place the original 
  153. ** SAFE ** Guardian disk (you've NEVER removed its write protection,
  154. didn't you ?!!) into the boot drive and press any mouse button to reset.
  155.  
  156.  
  157. Load and use of Guardian
  158. ------------------------
  159.  
  160. Again, the best thing to do is to use this ** SAFE ** disk for the first
  161. boot, just after the computer is turned on (and after the Kickstart disk
  162. has been loaded into the A1000, of course !), before inserting ANY other
  163. boot disk into the internal drive.  If you NEVER remove this disk's
  164. write protection, you'll be sure that NO virus can place itself here,
  165. and when you are in doubt about any of your boot disks, you'll just have
  166. to turn off and on the computer and use this disk first.  There had been
  167. rumours about some new virus, writing also on write protected disks. 
  168. That's definitely NOT POSSIBLE.  The last word about write protection is
  169. left to the floppy drive itself, and there's no way to fool it.  It is
  170. possible to force the computer (the software) to believe the disk is not
  171. write protected.  This way you could 'perform' write operations on write
  172. protected disks, and the drive would behave as if it were actually
  173. writing on those disks, but at the end you would find their contents
  174. unchanged.  This would let you do some innocent jokes, but nothing else.
  175.  
  176. After you've removed the viruses from your disks, you could copy
  177. Guardian into their C directories, and call it from their 
  178. startup-sequences.
  179.  
  180. Guardian should be launched in the first place of the startup-sequence,
  181. because of its unusual method of initialization.  When it's called, it
  182. looks in the ResModules table to see if it's already there.  If this is
  183. not true (such as if it's launched for the first time), Guardian
  184. installs itself in memory and reset the machine, to force the reset code
  185. to build the ResModules table again.
  186.  
  187. From now on, you don't need to launch Guardian again, because it's
  188. mounted in a Resident Module, and therefore the reset code takes care of
  189. it, through reset and system crashes.  Guardian will survive any number
  190. of them, until the machine is forced to do a cold-start, or until a
  191. malfunctioning program trashes its memory area.  A label on the boot
  192. screen will inform the user whether and which version is currently
  193. installed.
  194.  
  195. When Guardian is launched and finds itself in the ResTable, it outputs
  196. an announcement in the initial cli and exits smoothly.
  197.  
  198.  
  199. -a flag
  200. -------
  201.  
  202. This is a new v1.2 feature.
  203. Guardian, by default, installs itself in a 'kind' way, saving the
  204. vectors that KickTagPtr and KickMemPtr may contain, but can't
  205. distinguish between a good and a bad boy.  The new ram disk (RAMB0),
  206. that comes on the Workbench 1.3 (v34.4) disk, for example, creates a new
  207. entry into both of these vectors.  This is a 'good boy'.  The 'BYTE
  208. BANDIT' virus, on the other hand, is a 'bad boy' (not to talk about the
  209. impolite way it throws itself into KickTagPtr, shutting the door upon
  210. all the others !).  If you don't want the contents of these vectors to 
  211. be preserved, you can use the -a (angry) flag when launching Guardian
  212. for the first time.  This will force it to clear these vectors before
  213. installing itself, un-mounting other programs that will be flushed
  214. during the reset.  If Guardian is already mounted and you launch it with
  215. the -a flag, it will move its entry to the top of the list and remove
  216. all the others from the same.  Note that they won't be removed from
  217. memory until the next reset.  
  218.  
  219. Use of the -a flag is usually not required (and not advised, if you are
  220. running something like RAMB0 device, or other programs that use the
  221. resident modules technique to survive through the reset).
  222.  
  223. A common situation where the -a flag is required is the following one:
  224. Guardian is not installed and you boot with a 'BYTE BANDIT' infected
  225. disk.  The virus activates itself, then the startup-sequence is executed
  226. and Guardian launched.  If you didn't use the -q flag (more about this
  227. later), you'll get the alert about the Interrupt Vectors.  Restore them.
  228. Then launch Guardian again, this time with the -a flag, put a safe disk
  229. into the internal drive and reset with CTRL-AMIGA-AMIGA.
  230.  
  231.  
  232. -q flag
  233. -------
  234.  
  235. A new Guardian v1.2 feature is the ability to check the interrupt
  236. vectors table for values not standard, and the reset capture vectors to
  237. see if they're not empty.
  238.  
  239. By default, this security operation is performed each time you launch
  240. Guardian, but can be turned off by using the -q (quiet) flag.  This
  241. feature was implemented because these are critical points and are used
  242. for virus operations, the first (interrupt vectors) by the 'BYTE BANDIT'
  243. virus, the second (reset capture vectors) by the 'SCA' virus.  If you
  244. have one of these virus already in the computer when you launch Guardian,
  245. you'll get one of the two alerts, and you'll be given the chance of
  246. replacing the standard values into the interrupt vectors table, or of
  247. clearing the reset capture vectors.
  248. Usually, you can keep an eye over these vectors, to see that nothing
  249. mess with them, by simply launching Guardian without the -q flag.
  250. If you are running some strange program that alters some of them, you
  251. can force Guardian to ignore the situation by using this flag.
  252.  
  253.  
  254. "WARNING !!! - Reset Capture vectors are not empty !"
  255. -----------------------------------------------------
  256.  
  257. If you are infected by the 'SCA' virus, you can safely eliminate it, by
  258. cleaning the reset capture vectors.  
  259.  
  260.  
  261. "WARNING !!! - Interrupt vectors are not standard !"
  262. ----------------------------------------------------
  263.  
  264. If you are infected by the 'BYTE BANDIT' virus, you can choose to
  265. replace the standard interrupt vectors, but you won't be necessarily
  266. safe.  This depends whether you launched Guardian with the -a flag or
  267. not.  If the -a flag was used, first you get the alert about the
  268. IntVectors (replace them!), then Guardian clears the KickTagPtr (thus
  269. eliminating the virus's entry), installs itself and (if launched for the
  270. first time) reset the computer, forcing it to rebuild libraries's offset
  271. tables.  This way the virus is flushed also from the trackdisk device. 
  272. If you didn't use the -a flag, the resident entry of the virus is
  273. preserved, and the virus can mess with the trackdisk device again.  If
  274. this happens, you should either turn off the computer and boot with a
  275. safe disk, or launch Guardian using the -a option and then reset the
  276. machine to flush the virus from the trackdisk device.
  277.  
  278.  
  279. -k flag
  280. -------
  281.  
  282. A new v1.2 feature, is the -k (kill) flag.  If for some strange reason
  283. (incompatibility ? not likely !) you wish to get rid of Guardian, you
  284. can do it by using the -k flag.  The resident module will be removed
  285. from the list and its memory will be available after the next reset. 
  286. Use of the -k flag removes any Guardian version that is currently
  287. active.  If you are running with the older v1.1 and want to replace it
  288. with the new v1.2, you need not use this flag.  Just launch v1.2.
  289. The latter will replace the first, and will discard it from memory. 
  290. Please note that you can't launch v1.1 with v1.2 already in memory,
  291. because this will lead to a reset loop.  If you run into this situation,
  292. take out the boot disk from the internal drive, reset with CTRL-AMIGA-
  293. AMIGA and replace the old Guardian with the new version, in all of your
  294. disks.
  295.  
  296.  
  297. Special Kickstart 1.3 (v34.5) flags
  298. -----------------------------------
  299.  
  300. If you are running with Kickstart 1.3 (v34.5), you'll be able to use two
  301. extra flags and four hot-keys.  With Kickstart 1.3 (v34.5) you can boot,
  302. not only from the floppy disk, but also from a hard disk and from the
  303. new ram disk (RAMB0).  But if you want to boot from the ram disk, you
  304. have to put a not-installed floppy disk into the internal drive or take
  305. the bootable floppy out from the drive during each boot.  Guardian lets
  306. you decide whether the bootstrap should test the presence of a bootable
  307. floppy into the internal drive or the presence of the ram disk first. 
  308. Usually the strap module tries to boot from the floppy disk first.  If
  309. this fails, it tries to boot from ram disk, and if also this fails you
  310. are requested to insert a disk.  
  311.  
  312.  
  313. -r flag
  314. -------
  315.  
  316. If you launch Guardian with the -r flag, this order will be changed. 
  317. Bootstrap will first attempt to boot from the ram disk, then from the
  318. floppy, and finally it will request the insertion of a disk.
  319.  
  320.  
  321. -f flag
  322. -------
  323.  
  324. You can use the -f flag to bring things back as they used to be: first
  325. try from floppy then from ram. 
  326.  
  327.  
  328. Hot-keys
  329. --------
  330.  
  331. If you selected boot from ram disk, and need to force it from the floppy
  332. disk, there are two hot keys implemented for this purpose.  As soon as
  333. the power led stop flashing during the reset process, the screen becomes
  334. light grey, and then white.  As soon as it becomes white, you can press
  335. the Left AMIGA key to force boot from floppy disk.  If you press the
  336. Left ALT key, the boot screen will be displayed and hold until you
  337. release the key, and bootstrap will start from floppy disk.  
  338.  
  339. If, on the contrary, you have selected boot from floppy disk and need to
  340. force it from ram disk, press the Right AMIGA key.  If you press the
  341. Right ALT key, the boot screen will be displayed and hold, until you
  342. release the key, and bootstrap will start from ram disk.
  343.  
  344. The Left/Right ALT keys were implemented to let you check for the
  345. presence of the Guardian label on the boot screen.
  346. Please note that when I say "force boot from.." I mean that the
  347. bootstrap will try to boot FIRST from that device.  If this is not
  348. possible, it will still try to boot from the other devices available.
  349.  
  350.  
  351. A final word on Kickstart 1.3 (v34.5)
  352. -------------------------------------
  353. I'm not sure whether this Kickstart version is going to be the final
  354. release or not, but since it's widely spread among A1000 users, I've
  355. tuned this Guardian version to work with it.  If the official
  356. release will be different, please return this copy, along with its 
  357. serial number, to Transactor (UK) Ltd or to the author for prompt
  358. sending of the new Guardian version at the cost of postage only.  
  359. We will be able to fulfill this request from registered users only. 
  360. Don't forget to enclose you serial number to any communication with us.
  361.  
  362.  
  363. A final word about Guardian v1.2r 
  364. ---------------------------------
  365.  
  366. To give you a higher degree of safety from viruses, I created Guardian
  367. v1.2r, which is to be installed on the Kickstart disk directly, in place
  368. of the never-used Debug() function.  This way, you won't have to care
  369. about the first boot and things like that.  If you own an Amiga 1000,
  370. you can use Guardian_creator to modify a copy of your original Kickstart
  371. disk.  Simply launch this program and follow the instructions.  Now you
  372. can use the modified Kickstart disk in place of the original one.
  373. You won't be able to use the -a, -k, -f, and -r flags, because they are
  374. implemented in the startup code of Guardian v1.2, but you can still use
  375. the hot-keys which are controlled by the bootstrap itself.  If you
  376. launch Guardian_creator to modify a Kickstart 1.3 (v34.5) disk, you'll
  377. be asked to select default boot from Floppy or Ram disk.  This selection
  378. will be 'burned' into the Kickstart-resident Guardian code, thus it'll
  379. be used each time you load that modified Kickstart, until you use
  380. Guardian_creator on that disk again.  I suggest you to set the default
  381. boot from Ram disk, and to use the Left ALT/AMIGA hot-keys when you need
  382. it to happen from floppy disk.  When you are running with Guardian into
  383. the Kickstart, you can anyway launch Guardian v1.2 in your startup-
  384. sequences, to test the interrupt and reset capture vectors.
  385.  
  386.  
  387. Guardian v1.1 was developed to work on A500/1000/2000, (v1.1r works on
  388. A1000 only), with Kickstart release 1.2 (v33.180).
  389.  
  390. Guardian v1.2 was developed to work on A500/1000/2000, (v1.2r works on
  391. A1000 only), with Kickstart release 1.2 (v33.180) and 1.3 (v34.5).
  392.  
  393.  
  394. Please don't pirate this program.  We've kept the price of this software
  395. so low that there's really no point in pirating it.  This is more a
  396. service offered to the readers of "Transactor for the Amiga" than a
  397. commercial program on its own.  If you've got this as a pirate copy,
  398. please don't spread it further and send 3 pounds (6 USD) to the author
  399. or to Transactor (UK) Ltd.  You'll get a disk with the last Guardian
  400. version and a serial number to use for the next upgrade and for general
  401. support about any problem you may have with Guardian.  Thanks !
  402.  
  403. (May 19th 1988)
  404.  
  405. Leonardo Fei            Transactor (UK) Ltd
  406. via A. Fava 6           Unit 2, Langdale Grove
  407. 20125 Milano            Bingham, Nottinghamshire
  408. Italy                   England, NG13 8SR
  409.  
  410.  
  411.